package com.yonyou.cyxdms.sysAuth.service.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yonyou.cyx.framework.bean.dto.base.BaseDTO;
import com.yonyou.cyx.function.utils.bean.BeanMapperUtil;
import com.yonyou.cyxdms.framework.bean.entity.base.DMSBasePO;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 经销商基本信息
 * </p>
 *
 * @author quankk
 * @since 2019-01-21
 */
@TableName("tm_dealer_info")
public class DealerBasicinfoPO extends DMSBasePO<DealerBasicinfoPO> {

    private static final long serialVersionUID = 1L;

    /**
     * DEALER_ID
     */
    @TableId(value = "DEALER_ID", type = IdType.AUTO)
    private Long dealerId;

    /**
     * 租户ID
     */
    @TableField("APP_ID")
    private String appId;

    /**
     * 经销商代码
     */
    @TableField("DEALER_CODE")
    private String dealerCode;
    /**
     * 上级单位
     */
//    @TableField("PARENT_ORG")
//    private String parentOrg;
    /**
     * 维修站简称
     */
    @TableField("DEALER_SHORTNAME")
    private String dealerShortname;
    /**
     * 维修站名称
     */
    @TableField("DEALER_NAME")
    private String dealerName;
    /**
     * 省份
     */
//    @TableField("PROVINCE")
//    private String province;
    /**
     * 城市
     */
    @TableField("CITY")
    private String city;
    /**
     * 所在区县
     */
    @TableField("COUNTY")
    private String county;
    /**
     * 企业性质
     */
    @TableField("PROPERTY")
    private String property;
    /**
     * E_MAIL
     */
    @TableField("E_MAIL")
    private String eMail;
    /**
     * 邮编
     */
    @TableField("ZIP_CODE")
    private String zipCode;
    /**
     * 传真
     */
    @TableField("FAX")
    private String fax;
    /**
     * 开业日期
     */
    @TableField("OPEN_DATE")
    private LocalDate openDate;
    /**
     * 24小时热线电话
     */
    @TableField("HOT_LINE")
    private String hotLine;
    /**
     * 销售热线
     */
    @TableField("SALES_LINE")
    private String salesLine;
    /**
     * 售后热线
     */
    @TableField("SERVICE_LINE")
    private String serviceLine;
    /**
     * 地址
     */
    @TableField("ADDRESS")
    private String address;
    /**
     * 营业时间
     */
    @TableField("BUSINESS_HOURS")
    private String businessHours;
    /**
     * 建站日期
     */
    @TableField("CREATED_DATE")
    private LocalDate createdDate;
    /**
     * 待开业，已开业，停业
     */
    @TableField("DEALER_STATUS")
    private Integer dealerStatus;
    /**
     * 公司主页
     */
    @TableField("COMPANY_HOMEPAGE")
    private String companyHomepage;
    /**
     * 备注
     */
    @TableField("REMARK")
    private String remark;
    /**
     * 是否主店
     */
    @TableField("IS_MAIN")
    private Integer isMain;
    /**
     * 此经销商对应组织表里的主键
     */
    @TableField("ORGDEPT_ID")
    private Integer orgdeptId;
    /**
     * 职位控制开关
     */
    @TableField("POSITION_CTRL")
    private Integer positionCtrl;
    /**
     * 是否固化
     */
    @TableField(value = "IS_FIXED", exist = false)
    private Integer isFixed;
    /**
     * 畅捷支付合作者id
     */
    @TableField("PARTNER_ID")
    private String partnerId;
    /**
     * 私钥
     */
    @TableField("PRIVATE_KEY")
    private String privateKey;
    /**
     * 公钥
     */
    @TableField("PUBLIC_KEY")
    private String publicKey;
    /**
     * 数据类型：经销商、集团
     */
    @TableField("DATA_TYPE")
    private Integer dataType;
    /**
     * 产品购买类型
     */
    @TableField("PRODUCT_TYPE")
    private Integer productType;
    /**
     * 厂家用户名(部级分配连锁维修企业总部)
     */
    @TableField("USER_NAME")
    private String userName;
    /**
     * 厂家账号
     */
    @TableField("USER_CODE")
    private String userCode;
    /**
     * 密码(部级分配的密码)
     */
    @TableField("PASSWORD")
    private String password;
    /**
     * 获取接口调用凭证URL
     */
    @TableField("URL1")
    private String url1;
    /**
     * 道路经营许可证号/机动车维修经营许可证号
     */
    @TableField("LICENSE")
    private String license;
    /**
     * 维修企业唯一标识
     */
    @TableField("UNIQUE_CODE")
    private String uniqueCode;
    /**
     * 获取维修企业唯一标识URL
     */
    @TableField("URL2")
    private String url2;
    /**
     * 批量新增电子健康档案URL
     */
    @TableField("URL3")
    private String url3;
    /**
     * 重传标识 1.重传且上传 2.仅重传
     */
    @TableField("REPEAT_TAG")
    private String repeatTag;
    /**
     * 重传起始日期
     */
    @TableField("REPEAT_DATE_FROM")
    private LocalDateTime repeatDateFrom;
    /**
     * 重传截止日期
     */
    @TableField("REPEAT_DATE_TO")
    private LocalDateTime repeatDateTo;
    /**
     * 数据来源渠道
     */
    @TableField("SOURCE_CHANNEL")
    private String sourceChannel;
    /**
     * 销售流程工作流
     */
    @TableField("ACTIVITI_TYPE")
    private Integer activitiType;
    /**
     * 企业类型
     */
    @TableField("DEALER_TYPE_CODE")
    private Integer dealerTypeCode;
    /**
     * 店面数量
     */
    @TableField("STORE_NUMBER")
    private Integer storeNumber;
    /**
     * 费用
     */
    @TableField("COST")
    private Double cost;
    /**
     * 联系人
     */
    @TableField("LINKMAN")
    private String linkman;
    /**
     * 电话
     */
    @TableField("PHONE")
    private String phone;
    /**
     * 品牌
     */
    @TableField("BRAND")
    private String brand;
    /**
     * 长途拨号前缀
     */
    @TableField("LONGPREFIX")
    private String longprefix;
    /**
     * 短途拨号前缀
     */
    @TableField("SHORTPREFIX")
    private String shortprefix;

    /**
     * 维度
     */
    @TableField("IS_DELETED")
    private Integer isDeleted;

    /**
     * 经度
     */
    @TableField("longitude")
    private String longitude;

    /**
     * 维度
     */
    @TableField("latitude")
    private String latitude;

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public DealerBasicinfoPO() {
        super();
    }

    public DealerBasicinfoPO(DealerInfoPO po) {
        this.dealerId = Long.parseLong(String.valueOf(po.getDealerId()));
        this.appId = po.getAppId();
        this.dealerCode = po.getDealerCode();
        this.dealerShortname = po.getDealerShortname();
        this.dealerName = po.getDealerName();
        this.city = String.valueOf(po.getCityId());
        this.county = String.valueOf(po.getCountyId());
//        this.property = property;
        this.eMail = po.getEmail();
        this.zipCode = po.getZipCode();
        this.fax = po.getFaxNo();
//        this.openDate = ;
//        this.hotLine = hotLine;
//        this.salesLine = salesLine;
//        this.serviceLine = serviceLine;
        this.address = po.getAddress();
//        this.businessHours = businessHours;
        this.createdDate = createdDate;
        this.dealerStatus = po.getStatus();
//        this.companyHomepage =;
//        this.remark = remark;
//        this.isMain = isMain;
//        this.orgdeptId = orgdeptId;
//        this.positionCtrl = positionCtrl;
//        this.isFixed = isFixed;
//        this.partnerId = partnerId;
//        this.privateKey = privateKey;
//        this.publicKey = publicKey;
//        this.dataType = dataType;
//        this.productType = productType;
//        this.userName = po.getU;
//        this.userCode = po.get;
//        this.password = password;
//        this.url1 = url1;
//        this.license = license;
//        this.uniqueCode = uniqueCode;
//        this.url2 = url2;
//        this.url3 = url3;
//        this.repeatTag = repeatTag;
//        this.repeatDateFrom = repeatDateFrom;
//        this.repeatDateTo = repeatDateTo;
//        this.sourceChannel = sourceChannel;
//        this.activitiType = activitiType;
//        this.dealerTypeCode = dealerTypeCode;
//        this.storeNumber = storeNumber;
//        this.cost = ;
        this.linkman = po.getLinkMan();
        this.phone = po.getPhone();
//        this.brand = brand;
//        this.longprefix = longprefix;
//        this.shortprefix = shortprefix;
        this.isDeleted = po.getIsDeleted();
        this.longitude = po.getLongitude();
        this.latitude = po.getLatitude();
    }

    public Long getDealerId() {
        return dealerId;
    }

    public void setDealerId(Long dealerId) {
        this.dealerId = dealerId;
    }

    public String getDealerCode() {
        return dealerCode;
    }

    public void setDealerCode(String dealerCode) {
        this.dealerCode = dealerCode;
    }

//    public String getParentOrg() {
//        return parentOrg;
//    }

//    public void setParentOrg(String parentOrg) {
//        this.parentOrg = parentOrg;
//    }

    public String getDealerShortname() {
        return dealerShortname;
    }

    public void setDealerShortname(String dealerShortname) {
        this.dealerShortname = dealerShortname;
    }

    public String getDealerName() {
        return dealerName;
    }

    public void setDealerName(String dealerName) {
        this.dealerName = dealerName;
    }

//    public String getProvince() {
//        return province;
//    }

//    public void setProvince(String province) {
//        this.province = province;
//    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getCounty() {
        return county;
    }

    public void setCounty(String county) {
        this.county = county;
    }

    public String getProperty() {
        return property;
    }

    public void setProperty(String property) {
        this.property = property;
    }

    public String geteMail() {
        return eMail;
    }

    public void seteMail(String eMail) {
        this.eMail = eMail;
    }

    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public LocalDate getOpenDate() {
        return openDate;
    }

    public void setOpenDate(LocalDate openDate) {
        this.openDate = openDate;
    }

    public String getHotLine() {
        return hotLine;
    }

    public void setHotLine(String hotLine) {
        this.hotLine = hotLine;
    }

    public String getSalesLine() {
        return salesLine;
    }

    public void setSalesLine(String salesLine) {
        this.salesLine = salesLine;
    }

    public String getServiceLine() {
        return serviceLine;
    }

    public void setServiceLine(String serviceLine) {
        this.serviceLine = serviceLine;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getBusinessHours() {
        return businessHours;
    }

    public void setBusinessHours(String businessHours) {
        this.businessHours = businessHours;
    }

    public LocalDate getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(LocalDate createdDate) {
        this.createdDate = createdDate;
    }

    public Integer getDealerStatus() {
        return dealerStatus;
    }

    public void setDealerStatus(Integer dealerStatus) {
        this.dealerStatus = dealerStatus;
    }

    public String getCompanyHomepage() {
        return companyHomepage;
    }

    public void setCompanyHomepage(String companyHomepage) {
        this.companyHomepage = companyHomepage;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getIsMain() {
        return isMain;
    }

    public void setIsMain(Integer isMain) {
        this.isMain = isMain;
    }

    public Integer getOrgdeptId() {
        return orgdeptId;
    }

    public void setOrgdeptId(Integer orgdeptId) {
        this.orgdeptId = orgdeptId;
    }

    public Integer getPositionCtrl() {
        return positionCtrl;
    }

    public void setPositionCtrl(Integer positionCtrl) {
        this.positionCtrl = positionCtrl;
    }

    public Integer getIsFixed() {
        return isFixed;
    }

    public void setIsFixed(Integer isFixed) {
        this.isFixed = isFixed;
    }

    public String getPartnerId() {
        return partnerId;
    }

    public void setPartnerId(String partnerId) {
        this.partnerId = partnerId;
    }

    public String getPrivateKey() {
        return privateKey;
    }

    public void setPrivateKey(String privateKey) {
        this.privateKey = privateKey;
    }

    public String getPublicKey() {
        return publicKey;
    }

    public void setPublicKey(String publicKey) {
        this.publicKey = publicKey;
    }

    public Integer getDataType() {
        return dataType;
    }

    public void setDataType(Integer dataType) {
        this.dataType = dataType;
    }

    public Integer getProductType() {
        return productType;
    }

    public void setProductType(Integer productType) {
        this.productType = productType;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUrl1() {
        return url1;
    }

    public void setUrl1(String url1) {
        this.url1 = url1;
    }

    public String getLicense() {
        return license;
    }

    public void setLicense(String license) {
        this.license = license;
    }

    public String getUniqueCode() {
        return uniqueCode;
    }

    public void setUniqueCode(String uniqueCode) {
        this.uniqueCode = uniqueCode;
    }

    public String getUrl2() {
        return url2;
    }

    public void setUrl2(String url2) {
        this.url2 = url2;
    }

    public String getUrl3() {
        return url3;
    }

    public void setUrl3(String url3) {
        this.url3 = url3;
    }

    public String getRepeatTag() {
        return repeatTag;
    }

    public void setRepeatTag(String repeatTag) {
        this.repeatTag = repeatTag;
    }

    public LocalDateTime getRepeatDateFrom() {
        return repeatDateFrom;
    }

    public void setRepeatDateFrom(LocalDateTime repeatDateFrom) {
        this.repeatDateFrom = repeatDateFrom;
    }

    public LocalDateTime getRepeatDateTo() {
        return repeatDateTo;
    }

    public void setRepeatDateTo(LocalDateTime repeatDateTo) {
        this.repeatDateTo = repeatDateTo;
    }

    public String getSourceChannel() {
        return sourceChannel;
    }

    public void setSourceChannel(String sourceChannel) {
        this.sourceChannel = sourceChannel;
    }

    public Integer getActivitiType() {
        return activitiType;
    }

    public void setActivitiType(Integer activitiType) {
        this.activitiType = activitiType;
    }

    public Integer getDealerTypeCode() {
        return dealerTypeCode;
    }

    public void setDealerTypeCode(Integer dealerTypeCode) {
        this.dealerTypeCode = dealerTypeCode;
    }

    public Integer getStoreNumber() {
        return storeNumber;
    }

    public void setStoreNumber(Integer storeNumber) {
        this.storeNumber = storeNumber;
    }

    public Double getCost() {
        return cost;
    }

    public void setCost(Double cost) {
        this.cost = cost;
    }

    public String getLinkman() {
        return linkman;
    }

    public void setLinkman(String linkman) {
        this.linkman = linkman;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getLongprefix() {
        return longprefix;
    }

    public void setLongprefix(String longprefix) {
        this.longprefix = longprefix;
    }

    public String getShortprefix() {
        return shortprefix;
    }

    public void setShortprefix(String shortprefix) {
        this.shortprefix = shortprefix;
    }

    @Override
    public Integer getIsDeleted() {
        return isDeleted;
    }

    @Override
    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    @Override
    protected Serializable pkVal() {
        return this.dealerId;
    }

    @Override
    public String toString() {
        return "DealerBasicinfoPO{" +
                "dealerId=" + dealerId +
                ", dealerCode='" + dealerCode + '\'' +
//                ", parentOrg='" + parentOrg + '\'' +
                ", dealerShortname='" + dealerShortname + '\'' +
                ", dealerName='" + dealerName + '\'' +
//                ", province='" + province + '\'' +
                ", city='" + city + '\'' +
                ", county='" + county + '\'' +
                ", property='" + property + '\'' +
                ", eMail='" + eMail + '\'' +
                ", zipCode='" + zipCode + '\'' +
                ", fax='" + fax + '\'' +
                ", openDate=" + openDate +
                ", hotLine='" + hotLine + '\'' +
                ", salesLine='" + salesLine + '\'' +
                ", serviceLine='" + serviceLine + '\'' +
                ", address='" + address + '\'' +
                ", businessHours='" + businessHours + '\'' +
                ", createdDate=" + createdDate +
                ", dealerStatus=" + dealerStatus +
                ", companyHomepage='" + companyHomepage + '\'' +
                ", remark='" + remark + '\'' +
                ", isMain=" + isMain +
                ", orgdeptId=" + orgdeptId +
                ", positionCtrl=" + positionCtrl +
                ", isFixed=" + isFixed +
                ", partnerId='" + partnerId + '\'' +
                ", privateKey='" + privateKey + '\'' +
                ", publicKey='" + publicKey + '\'' +
                ", dataType=" + dataType +
                ", productType=" + productType +
                ", userName='" + userName + '\'' +
                ", userCode='" + userCode + '\'' +
                ", password='" + password + '\'' +
                ", url1='" + url1 + '\'' +
                ", license='" + license + '\'' +
                ", uniqueCode='" + uniqueCode + '\'' +
                ", url2='" + url2 + '\'' +
                ", url3='" + url3 + '\'' +
                ", repeatTag='" + repeatTag + '\'' +
                ", repeatDateFrom=" + repeatDateFrom +
                ", repeatDateTo=" + repeatDateTo +
                ", sourceChannel='" + sourceChannel + '\'' +
                ", activitiType=" + activitiType +
                ", dealerTypeCode=" + dealerTypeCode +
                ", storeNumber=" + storeNumber +
                ", cost=" + cost +
                ", linkman='" + linkman + '\'' +
                ", phone='" + phone + '\'' +
                ", brand='" + brand + '\'' +
                ", longprefix='" + longprefix + '\'' +
                ", shortprefix='" + shortprefix + '\'' +
                ", isDeleted=" + isDeleted +
                ", longitude='" + longitude + '\'' +
                ", latitude='" + latitude + '\'' +
                ", appId='" + appId + '\'' +
                '}';
    }


    /**
     * 将PO 信息转化为DTO
     *
     * @param dto 需要进行转换的dto
     * @author quankk
     * @since 2018/7/22 0022
     */
    protected <T extends BaseDTO> void transDtoToPo(T dto) {
        BeanMapperUtil.copyProperties(this, dto, "dealerId");
    }


}
